//==========================================================================
// Copyright (c) 2000-2008,  Elastos, Inc.  All Rights Reserved.
//==========================================================================
#ifndef __DDKTSTTHREAD_H__
#define __DDKTSTTHREAD_H__

typedef enum ThreadTstCommand {
    ThdTst_DzCreateKernelThread = 1,
    ThdTst_DzGetCurrentThread,
    ThdTst_DzYield,
    ThdTst_DzSleep,
    ThdTst_DzDelay,
    ThdTst_DzPreemption,
} ThreadTstCommand;

typedef enum ThreadType{
    ThreadType_Kernel = 1,
    ThreadType_SystemNormal,
    ThreadType_SystemSoftRealTime,
}ThreadType;

typedef struct _Thread_Pack {
    char chThread;
    int nIdThread;
    IThread *iThread;
} ThreadPack, *PThreadPack;

typedef struct _Thread_Control {
    int     nFunNo;
    int     nCaseFlag;
    UInt32  uRoutine;
} ThreadControl, *PThreadControl;

ECode ThdTstDzYield1();
ECode ThdTstDzYield2();
ECode ThdTstDzYield3();
ECode ThdTstDzYield4();
ECode ThdTstDzYield5();

ECode ThdTstDzSleep1();
ECode ThdTstDzSleep2();
ECode ThdTstDzSleep3();
ECode ThdTstDzSleep4();
ECode ThdTstDzSleep5();
ECode ThdTstDzSleep6();
ECode ThdTstDzSleep7();
ECode ThdTstDzSleep8();
ECode ThdTstDzSleep9();

ECode ThdTstDzDelay1();
ECode ThdTstDzDelay2();
ECode ThdTstDzDelay3();
#endif // __DDKTSTTHREAD_H__
